home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / asm / pc370_3.exe / lha / INS0156.ALC < prev    next >
Text File  |  1987-06-06  |  3KB  |  93 lines

  1.     TITLE 'INS0156 - PC/370 MVS SIO TYPE 4 MACRO INSTRUCTION'
  2. * PGMID.   INS0156.ALC (LINKED AS INS0156.MOD)
  3. * AUTHOR.  DON HIGGINS.
  4. * DATE.    05/31/87
  5. * REMARKS. PC/370 MVS SIO (START I/O) TYPE 4 MACRO INSTRUCTION TO
  6. *          SUPPORT SIMULATED CAHNNEL PROGRAMS TO CONSOLE X'01F'
  7. * MAINTENANCE.
  8. *
  9. * 06/02/87 ADD TIC AND DEVICE END LOGIC
  10. * 06/06/87 ADD CR,LF AFTER READ
  11. *
  12. INS0156  CSECT
  13.     USING *,R6
  14.     L     R3,OLDPGM+4
  15.     CLC   0(4,R3),=X'9C00001F'  IF NOT EXPLICIT X'01F'
  16.     BNE   NOTOPER               SET CC=3 = NOT OPERATIONAL
  17.     L     R3,CAW
  18. CCWEXEC  EQU   *                     EXEC CCW AT R3
  19.     CLI   0(R3),CCREAD
  20.     BE    INSREAD
  21.     CLI   0(R3),CCWRITE
  22.     BE    INSWRITE
  23.     CLI   0(R3),CCTIC
  24.     BE    INSTIC
  25. CCWERR   EQU   *                     CCW INVALID OP CODE
  26.     MVC   CSW+4,=X'0C20'        CE, DE, PGM CHECK
  27.     LH    R0,6(R3)
  28.     STH   R0,CSW+6              CCW RESIDUAL COUNT
  29.     B     CSWSTOR
  30. INSREAD  EQU   *                     CCW READ VIA ASSIST XREAD
  31.     L     R4,0(R3)
  32.     LH    R5,6(R3)
  33.     XREAD 0(R4),0(R5)
  34.     LA    R2,LF
  35.     SVC   WRITECHR              FORCE LF,CR AFTER READ
  36.     LA    R2,CR
  37.     SVC   WRITECHR
  38.     MVC   CSW+4(4),=X'0C000000'
  39.     BZ    CCWNEXT
  40.     MVC   CSW+4(2),=X'0D00'     CCW CE, DE, UNIT EXCEPTION
  41.     LH    R0,6(R3)
  42.     STH   R0,CSW+6
  43.     B     CSWSTOR
  44. INSWRITE EQU   *                     CCW WRITE VIA ASSIST XPRNT
  45.     L     R4,0(R3)
  46.     LH    R5,6(R3)
  47.     XPRNT 0(R4),0(R5)
  48.     MVC   CSW+4(4),=X'0C000000'
  49.     B     CCWNEXT
  50. INSTIC   EQU   *                     CCW TRANSFER TO CCW
  51.     L     R3,0(R3)
  52.     B     CCWEXEC
  53. CCWNEXT  EQU   *
  54.     TM    4(R3),X'40'          IS CHAIN COMMAND ON
  55.     BZ    CSWSTOR              NO, STORE CSW AND EXIT
  56.     LA    R3,8(R3)             YES, GO TO NEXT CCW
  57.     B     CCWEXEC
  58. NOTOPER  EQU   *
  59.     OI    OLDPGM+2,X'30' SET CC=3
  60.     B     INSEXT
  61. CSWSTOR  EQU   *
  62.     NI    OLDPGM+2,X'CF' SET CC=0  STARTED
  63.     OI    OLDPGM+2,X'10' SET CC=1  CSW STORED
  64.     ST    R3,CSW                CCW ADDRESS
  65. INSEXT   EQU   *
  66.     L     R15,OLDPGM+4
  67.     LA    R15,4(R15)    SKIP OVER SIO INSTR.
  68.     ST    R15,OLDPGM+4
  69.     SR    R15,R15
  70.     BR    R14
  71. *
  72. * DATA
  73. *
  74. R0       EQU   0
  75. R1       EQU   1
  76. R2       EQU   2
  77. R3       EQU   3
  78. R4       EQU   4
  79. R5       EQU   5
  80. R6       EQU   6
  81. R14      EQU   14
  82. R15      EQU   15
  83. OLDPGM   EQU   X'28' OLD PGM PSW
  84. CSW      EQU   X'40' CHANNEL STATUS WORD
  85. CAW      EQU   X'48' CHANNEL ADDRESS WORD
  86. CCREAD   EQU   X'02' CCW READ
  87. CCWRITE  EQU   X'01' CCW WRITE
  88. CCTIC    EQU   X'08' CCW TIC
  89. WRITECHR EQU   200+2  WRITE CHR TO CONSOLE FROM R2
  90. CR       EQU   X'0D'  ASCII CARRIAGE RETURN
  91. LF       EQU   X'0A'  ASCII LINE FEED
  92.     END
  93.